package com.xhsj.user.lsm.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.google.common.collect.Lists;
import com.xhsj.user.sms.base.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.time.LocalDateTime;
import java.util.List;

/**
 * <p>
 * 合同申请表
 * </p>
 *
 * @author suxiaolin
 * @since 2020-05-11
 */
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("tb_contract_apply")
public class TbContractApply extends BaseEntity<TbContractApply> {

    private static final long serialVersionUID = 1L;

    /**
     * 合同编号
     */
    @TableField("contract_no")
    private String contractNo;

    /**
     * 合同主题
     */
    @TableField("contract_subject")
    private String contractSubject;

    /**
     * 合同方名称
     */
    @TableField("parties_name")
    private String partiesName;

    /**
     * 合同方联系人
     */
    @TableField("parties_contacts")
    private String partiesContacts;

    /**
     * 合同方联系方式
     */
    @TableField("parties_contact_information")
    private String partiesContactInformation;

    /**
     * 合同方地址
     */
    @TableField("parties_address")
    private String partiesAddress;

    /**
     * 合同方联系地址
     */
    @TableField("parties_email")
    private String partiesEmail;

    /**
     * 是否需要回执文件0 需要 1不需要
     */
    @TableField("receipt_file")
    private Integer receiptFile;

    /**
     * 生效开始日期
     */
    @TableField("effective_start_date")
    private LocalDateTime effectiveStartDate;

    /**
     * 生效结束日期
     */
    @TableField("effective_end_date")
    private LocalDateTime effectiveEndDate;

    /**
     * 原件保留数
     */
    @TableField("original_retention_num")
    private Long originalRetentionNum;

    /**
     * 提交状态 1 保存 2 提交
     */
    @TableField("submit_status")
    private Integer submitStatus;

    /**
     * 当前节点id
     */
    @TableField("node_name")
    private String nodeName;

    /**
     * 合同文件列表
     */
    @TableField(exist = false)
    private List<TbContractFile> contractFile;

    /**
     * 合同-证章
     */
    @TableField(exist = false)
    private List<String> managerIds;

    /**
     * 合同类型 0 普通合同 1 采购合同
     */
    @TableField("contract_type")
    private Integer contractType;

    /**
     * 供应链节点id
     */
    @TableField("purchase_node_id")
    private String purchaseNodeId;

    /**
     * 运行流程任务id
     */
    @TableField("process_task_id")
    private String processTaskId;


    // 下面的字段是区分采购合同的数据
    /**
     * 付款方式 1 一次结清 2 多次结清
     */
    @TableField("payment_way")
    private Integer paymentWay;


    /**
     * 采购订单子任务id
     */
    @TableField("subtask_id")
    private String subtaskId;


    /**
     * 首付款比例
     */
    @TableField("advance_proportion")
    private Integer advanceProportion;


    /**
     * 二期款比例
     */
    @TableField("second_proportion")
    private Integer secondProportion;


    /**
     * 尾款比例
     */
    @TableField("final_proportion")
    private Integer finalProportion;


    /*以下字段用于查询任务转出使用*/

    @TableField(exist = false)
    private List<Object> userList = Lists.newArrayList();

    @TableField(exist = false)
    private String transferId;

}
